from django.shortcuts import render,redirect
#导包
from django.http import HttpResponse,HttpResponseRedirect,JsonResponse
#导入类视图
from django.views import View

import json
from django.core.serializers import serialize
from rest_framework.response import Response
from rest_framework.views import APIView
#导入加密库
import hashlib
#导入图片库
#绘画库
from PIL import ImageDraw
#字体库
from PIL import ImageFont
#图片库
from PIL import Image
#随机库
import random
#文件流
import io

import requests

#导入上传文件夹配置
from mydjango.settings import UPLOAD_ROOT
import os

#导入原生sql模块
from django.db import connection

import jwt

#导入redis数据库
import redis

#导入时间模块
import time

#导入公共目录变量
from mydjango.settings import BASE_DIR

#导包
from django.db.models import Q,F

#导入dwebsocket的库
from dwebsocket.decorators import accept_websocket
import uuid

from myapp.models import User, Pics
# 导入序列化对象
from myapp.myser import UserSer, PicsSer

# 导包
import redis

# 定义ip地址和端口
host = '127.0.0.1'
port = 6379

# 定义链接对象
r = redis.Redis(host=host, port=port)

# 导包
from django.utils.deprecation import MiddlewareMixin

# 幻灯片接口
class PicsList(APIView):
    def get(self, request):
        # 查询数据
        pics = Pics.objects.filter().values('title', 'link', 'img')

        # 序列化对象
        pics_ser = PicsSer(pics, many=True)

        return Response(pics_ser.data)

# 插入幻灯片
class InsertPics(APIView):
    def get(self, request):
        # 接收参数
        title = request.GET.get('title', '')
        link = request.GET.get('link', '')
        img = request.GET.get('img', '')

        # 排重
        pics = Pics.objects.filter(title=title).first()

        if pics:
            res = {}
            res['code'] = 405
            res['message'] = '该活动已存在'
            return Response(res)

        # 入库
        pics = Pics(title=title, link=link, img=img)
        pics.save()

        res = {}
        res['code'] = 200
        res['message'] = '添加成功'
        return Response(res)

# 展示幻灯片
class ShowPics(APIView):
    def get(self, request):
        # 查询数据
        pics = Pics.objects.all()

        if pics:
            pics_ser = PicsSer(pics, many=True)
            return Response(pics_ser.data)

        else:
            res = {}
            res['code'] = 405
            res['msg'] = '没有该幻灯片'
            return Response(res)

# 修改幻灯片页面
class UpdatePics(APIView):
    def get(self, request):
        #接收参数
        uid = request.GET.get("uid")
        title = request.GET.get("title",'null')
        link = request.GET.get("link",'null')
        img = request.GET.get("img", 'null')

        #查询
        pics = Pics.objects.filter(id=uid).first()

        if pics:
            pics.title = title
            pics.link = link
            pics.img = img

            pics.save()
        res = {}
        res['code']=200
        res['message'] = '更新成功'
        return  Response(res)


# 删除幻灯片页面
class DeletePics(APIView):
    def get(self, request):

        #接收参数
        uid = request.GET.get("uid")

        #查询并删除
        pics = Pics.objects.filter(id=uid).first().delete()

        res = {}
        res['code']=200
        res['message'] = '删除成功'
        
        return Response(res)